home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / amiga / modelers / chmsthtc / chmsthtc.lzh / Chemesthetics / Source / Source.LZH / zeit_angabe.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-21  |  2.4 KB  |  90 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1991 by Metalworx
  4.  *
  5.  *    Name .....: zeit_angabe.c
  6.  *    Created ..: Fri 18-Oct-91 10:58
  7.  *    Revision .: 0
  8.  *
  9.  *    Date        Author        Comment
  10.  *    =========    ========    ====================
  11.  *    18-Oct-91    Mtwx        Created this file!
  12.  *
  13.  * $Revision Header ********************************************************/
  14.  #define REVISION 0
  15.  
  16. /***************************************************************************
  17. * zeit_angabe.c: berechnet aus der Startzeit und der aktuellen Zeit eine   *
  18. *         Zeit, die das voraussichtliche Ende des Zeichenvorgangs   *
  19. *         errechnet. Wird nach jedem Atom neu berechnet           *
  20. ***************************************************************************/
  21.  
  22. /* ------------------------------- includes ----------------------------- */
  23.  
  24. #include <math.h>
  25. #include <stdio.h>
  26. #include <proto/intuition.h>
  27.  
  28. #include <mtwx_defs.h>
  29.  
  30. #include "messages.h"
  31. #include "zeit_angabe.h"
  32. #include "chem_defs.h"
  33.  
  34. /* ------------------------------- global references -------------------- */
  35.  
  36. struct Window *timewin;
  37.  
  38. /* ------------------------------- external references ------------------ */
  39.  
  40. extern int HEIGHT,atomanz;
  41. extern long conwin;
  42. extern ATOMTYP *a[];
  43.  
  44. extern struct Screen *FirstScreen;
  45.  
  46. /* ------------------------------- prototypes --------------------------- */
  47.  
  48. extern void SimpleRequest(char *,...);
  49.  
  50. /* ------------------------------- routines ----------------------------- */
  51.  
  52. void zeit_angabe(int n,long stime, long ntime)
  53. {
  54.   int i,rsumme=0,rschnitt;
  55.   long vtime,etime;
  56.   char line1[36],line2[36];
  57.  
  58.   vtime=ntime-stime;
  59.   sprintf(line1,"Atom %2s: %03d/%03d  %s: %03d.%02d min",a[n]->name,n,
  60.       atomanz,TIME_TEXT1,vtime/60,vtime%60);
  61.   for(i=1;i<=n;i++)
  62.     rsumme+=(int)(PI*a[i]->r*a[i]->r);
  63.   rschnitt=rsumme/n;
  64.   rsumme=0;
  65.   if(n<atomanz)
  66.   {
  67.     for(i=n+1;i<=atomanz;i++)
  68.       rsumme+=(int)(PI*a[i]->r*a[i]->r);
  69.   }
  70.   etime=(int)((rsumme/(float)rschnitt)*(vtime/n)+vtime);
  71.   sprintf(line2,"%s: %03d.%02d min",TIME_TEXT2,etime/60,etime%60);
  72.   Print(timewin,line1,2,0,8,19);
  73.   Print(timewin,line2,2,0,8,27);
  74. }
  75.  
  76. BOOL prepare_zeitinfo(atomanz)
  77. {
  78.   ZeitFenster.Screen=FirstScreen;
  79.   if(!(timewin=OpenWindow(&ZeitFenster)))
  80.   {
  81.     DisplayBeep(0L);
  82.     WrConWin(conwin,NO_TIME_WIN);
  83.     SimpleRequest(NO_TIME_WIN);
  84.     return FALSE;  /* Fehler! */
  85.   }
  86.   Print(timewin,TIME_TEXT3,2,0,8,19);
  87.   return TRUE;
  88. }
  89.  
  90.